package com.divemotor.ventarepuestosinternet.service;

import java.util.List;

import org.primefaces.model.SortOrder;

import com.divemotor.ventarepuestosinternet.exception.DivemotorBusinessException;
import com.divemotor.ventarepuestosinternet.model.Imagen;
import com.divemotor.ventarepuestosinternet.model.Promocion;
import com.divemotor.ventarepuestosinternet.model.Repuesto;

public interface RepuestoService {
	public List<Repuesto> listarRepuestos() throws DivemotorBusinessException;
	public List<Repuesto> buscarRepuestos(Repuesto repuesto) throws DivemotorBusinessException;
	public List<Repuesto> buscarRepuestos(int inicio, int numeroResultadosPorPagina, 
			SortOrder orden, String columnaOrden, Repuesto repuesto) throws DivemotorBusinessException;
	public void insertarRepuesto(Repuesto repuesto) throws DivemotorBusinessException;
	public void actualizarRepuesto(Repuesto repuesto) throws DivemotorBusinessException;
	public void eliminarRepuesto(Repuesto repuesto) throws DivemotorBusinessException;
	public List<Repuesto> buscarRepuestosAsignablesPorImagen(Repuesto repuesto, Imagen imagen) throws DivemotorBusinessException;
	public List<Repuesto> buscarRepuestosAsignablesPorImagen(int inicio, int numeroResultadosPorPagina,
			SortOrder orden, String columnaOrden, Repuesto repuesto, Imagen imagen) throws DivemotorBusinessException;
	public List<Repuesto> buscarRepuestosAsignablesPorPromocion(int inicio, int numeroResultadosPorPagina,
			SortOrder orden, String columnaOrden, Repuesto repuesto, Promocion promocion) throws DivemotorBusinessException;
	public Integer obtenerNumeroRepuestosBusqueda(Repuesto repuesto) throws DivemotorBusinessException;
	public Integer obtenerNumeroRepuestosAsignablesPorImagen(Repuesto repuesto, Imagen imagen) throws DivemotorBusinessException;
	public Integer obtenerNumeroRepuestosAsignablesPorPromocion(Repuesto repuesto, Promocion promocion) throws DivemotorBusinessException;
	public Repuesto obtenerRepuestoPorId(Repuesto repuesto)
			throws DivemotorBusinessException;
}